import numpy as np
import scipy.misc
import math

p = np.poly1d([3, 4, 5])
print(p)
# 一阶导数
f1 = p.deriv()
# 二阶导数
f2 = p.deriv(2)
print(f1)
print(f2)
print(f1(2))

# 另一种求导数的方法，函数表达式可以更灵活，但是只能求出导数值而不是表达式
fun=lambda x:2*x**2+3*math.sin(x)
print(scipy.misc.derivative(fun,2))